// 更新文章请求模块

// 引入formidable模块处理文件上传
const formidable = require('formidable');
// 引入path模块
const path = require('path');
// 引入Article集合规则
const Article = require('../../model/article.js');

module.exports = (req, res, next) => {
    let { id, page } = req.query;
    // 创建表单解析对象
    const form = new formidable.IncomingForm();
    // 设置文件上传路径
    form.uploadDir = path.join(__dirname, '..', '..', 'public', 'uploads');
    // 保留文件扩展名
    form.keepExtensions = true;
    // 解析表单
    form.parse(req, async (err, fields, files) => {
        if (err) {
            next(err);
        } else {
            let article = fields;
            // 判断用户是否更新了封面, 若更新了封面则修改封面路径，否则不修改
            if (files.cover.name) {
                article.cover = files.cover.path.split('public')[1];
            }
            // 更新文章内容
            await Article.updateOne({_id: id}, article);
            // 重定向到文章管理页面
            res.redirect('/admin/articles?page=' + page);
        }
    })
}